OHI-Northeast | OHI Science | Citation policy
knitr::opts_chunk$set(fig.width = 6, fig.height = 4, fig.path = 'figs/', message = FALSE, warning = FALSE)
source('~/github/ne-prep/src/R/common.R') ### an OHINE specific version of common.RThis script creates the Iconic Species status data layer for use in the Sense of Place: Iconic Species subgoal. A list of 33 iconic species was created following input from multiple folks in the region. The Iconic Species status layer calculates the conservation status score (0 = extinct, 1 = least concern) for each of the iconic species.
We use NatureServe and IUCN conservation status (aka extinction risk) information.
Load the list of our iconic species. This list was created manually through consultation with folks in the region about iconic Northeast species.
iconic_list <- read_csv("data/iconic_species_list.csv") %>%
mutate(common = tolower(common),
scientific = tolower(scientific))Species range (i.e. where the species is found) and conservation status information comes from a layer in the Biodiversity - Species subgoal. The spp_status_scores.csv contains information about each species in our region, their conservation status and the associated score between 0 and 1 (where 0 is low extinction risk and 1 is extinct). spp_rgns.csv contains info on where each species is found within the Northeast. Both of these files are created in the prep/bio/spp folder and these two .csv’s live in the ne-scores repository.
species_status <- read_csv("~/github/ne-scores/region/layers/spp_status_scores.csv") %>%
select(-X1) %>%
mutate(sciname = tolower(sciname))
species_rgns <- read_csv("~/github/ne-scores/region/layers/spp_rgns.csv") %>% select(-year)Combine status and regions
spp_status_rgns <- species_rgns %>%
left_join(species_status, by = c("common", "sciname", "rgn_id")) %>%
select(rgn_id, common, sciname, score, year)Filter dataset just for iconic species
#filter species status just for our iconic species
iconic_species_status1 <- spp_status_rgns %>%
filter(common %in% iconic_list$common)
#filter based on scientific name
iconic_species_status2 <- spp_status_rgns %>%
filter(tolower(sciname) %in% iconic_list$scientific)
#change "white shark" to "great white shark"
iconic_species_status <- iconic_species_status1 %>%
bind_rows(iconic_species_status2) %>%
distinct() %>%
mutate(common = ifelse(common == "white shark", "great white shark", common),
score = 1-score) %>% #the original scores from the SPP status are 0 (good) to 1 (bad/extinct). Here I reverse this so closer to 1 = better
filter(!is.na(score)) Did we get all 33 species?
## [1] "alewife" "american lobster"
## [3] "american shad" "arctic tern"
## [5] "atlantic cod" "atlantic herring"
## [7] "atlantic puffin" "atlantic sturgeon"
## [9] "bottlenose dolphin" "common tern"
## [11] "fin whale" "haddock"
## [13] "horseshoe crab" "humpback whale"
## [15] "least tern" "minke whale"
## [17] "north atlantic right whale" "roseate tern"
## [19] "sperm whale" "striped bass"
## [21] "atlantic bluefin tuna" "osprey"
## [23] "bald eagle" "sandbar shark"
## [25] "great white shark"
We only have 25 species in the spp_status_scores data. What are we missing?
## [1] "american oyster" "blue crab" "bay scallop"
## [4] "sea scallop" "atlantic surfclam" "soft shell clam"
## [7] "northern quahog" "atlantic salmon" "piping plover"
Most of the species we are missing are a harvested (commercially fished) species, except for Piping plover. We will use our stock scores for these species where available. The nmfs_stock_scores.csv dataset was created in the Seafood Provision - Wild-Caught Fisheries subgoal data prep.
stock_scores <- read_csv("~/github/ne-prep/prep/fis/data/nmfs_stock_scores.csv") %>%
select(year, stock, b_bmsy) %>%
mutate(score = ifelse(b_bmsy >=1, 1, b_bmsy)) %>%
separate(stock, into = c("common", "area"), sep = " - ") %>%
filter(tolower(common) %in% missing) %>%
select(common, score, year)
unique(stock_scores$common)## [1] "Atlantic salmon" "Atlantic surfclam" "Sea scallop"
Only three of the species have stock assessments from NMFS that we can use as scores. So looks like we are missing american oyster, blue crab, bay scallop, soft shell clam, and quahog.
We don’t care about how big or small the species range map is, if a species exists within an OHI region we will count it there.
## # A tibble: 10 x 3
## rgn_id common sciname
## <dbl> <chr> <chr>
## 1 1 sea scallop placopecten magellanicus
## 2 2 sea scallop placopecten magellanicus
## 3 3 sea scallop placopecten magellanicus
## 4 4 sea scallop placopecten magellanicus
## 5 6 sea scallop placopecten magellanicus
## 6 7 sea scallop placopecten magellanicus
## 7 8 sea scallop placopecten magellanicus
## 8 9 sea scallop placopecten magellanicus
## 9 10 sea scallop placopecten magellanicus
## 10 11 sea scallop placopecten magellanicus
We only have sea scallop identified to regions within the Northeast. That means we are missing salmon and surfclam. For now let’s assume they are everywhere. Combine rgn_areas with the scores
salm_surf <- stock_scores %>%
filter(common != "Sea scallop") %>%
mutate(rgn_id = 1,
common = tolower(common)) %>%
group_by(common, score) %>%
complete(rgn_id = 1:11, year) %>%
mutate(sciname = case_when(
common == "atlantic salmon" ~ "Salmo salar",
common == "atlantic surfclam" ~ "Spissula solidissima"
))
#join the salmon and surfclam dataset with sea scallops
salm_surf_scallop <- stock_scores %>%
mutate(common = tolower(common)) %>%
filter(common == "sea scallop") %>%
left_join(fish_rgns) %>%
bind_rows(salm_surf)We need to add all years even though we dont have any information that tells us status changes. So these scores will all be the same over the entire time period.
ico_layer <- spp_rgns_scores %>%
group_by(common, sciname, rgn_id, score) %>%
complete(year = 2005:2017) %>%
left_join(rgn_data)
ggplot(ico_layer, aes(x = year, y = score, color = common)) +
geom_line() +
theme_bw() +
facet_wrap(~rgn_name) +
theme(axis.text.x = element_text(angle = 90, hjust = 1))Since we see no changes over time let’s just look at 2017 in table form